package pe.com.ztaxi.taxis.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import pe.com.ztaxi.taxis.model.OrdenServicio;
import pe.com.ztaxi.taxis.service.OrdenServicioService;
import pe.com.ztaxi.taxis.service.PasajeroService;

@PreAuthorize("hasAnyRole('ROLE_CLIENTE', 'ROLE_ADMIN')")
@Controller
public class EvaluarServicioController {

	@Autowired
	private PasajeroService pasajeroService;
	
	@Autowired
	private OrdenServicioService ordenServicioService;
	
	@RequestMapping(value = "/evaluarServicio", method = RequestMethod.GET)
	public String getEvaluarServicio(@RequestParam(value = "numeroOrden") Integer numeroOrden, OrdenServicio ordenServicio, Model model) {
		OrdenServicio orden = ordenServicioService.buscarPorCodigo(numeroOrden);
		if(orden.getEstado().equals("Cancelado")){
			return "redirect:/historialServicios?mensaje=noPuedeEvaluar";
		} else {
			model.addAttribute("ordenServicio", orden);
			model.addAttribute("opcionMenu","ReservarServicio");
			model.addAttribute("pasajero", pasajeroService.buscarPorCodigo(orden.getPasajero().getCodigo(),10));
			return "evaluarServicio";
		}		
	}
	
	@RequestMapping(value = "/evaluarServicio", method = RequestMethod.POST)
	public String postEvaluarServicio(OrdenServicio ordenServicio, Model model) {
		ordenServicioService.evaluarOrdenServicio(ordenServicio);
		return "redirect:/historialServicios?mensaje=evaluada";
	}
}
